The invention pertains to the interruption of the normal sequence to instruction execution by a stored program computer in response to external signals.
In the stored program digital computer art, an interrupt is understood to mean a temporary suspension or break in the normal operation of executing sequential instructions so that the processor can service an external device or branch to a predetermined place in the instruction stream in response to an external signal. Peripheral devices providing data storage used in conjunction with the processor operate at speeds which are very slow in comparison to the speed of operation of the processor. Interrupts provide a means for permitting processors to execute instructions while waiting to service the peripheral devices, i.e., to provide data to be written to the device or to accept data read from the device. Another use of interrupts makes programs more versatile and general in application by permitting the operator to indicate which of several alternative branches should be taken in the program depending on some external criteria. This is often accomplished by switches, called break points, which are sensed by the machine using special instructions for that purpose.
There is usually only one interrupt input signal in a processor. When several devices are capable of interrupting, their interrupt request signals are ORed together to provide single processor interrupt signal. Activation of the interrupt signal causes the processor to branch to a subroutine that determines which device caused the interrupt signal to the processor and which service routine or subroutine should be executed. One method of identifying the interrupt is polling where external flag lines are used to identify the device or where each device is interrogated in turn by a special instruction until an active device is found.
A priority interrupt system is used in systems having some devices that must be serviced at a faster rate than others. For example, a high-speed magnetic tape reader must be processed more often than a paper tape reader because the character rate is greater and allowable buffer time is less due to the higher data flow speed. The problem is one of determining not only which device requested an interrupt but also, in the case where several devices request an interrupt, which of the devices has a higher priority and should therefore be serviced first.
A vectored interrupt is an interrupt providing a plurality of responses to the interrupt signal. Sometimes several interrupt lines are provided; in the case of a single interrupt line, a subroutine is used to scan or to poll the possible sources of interrupt and determine from the results which subroutine or program branch is to be executed.
Prior art systems utilizing interrupts require substantial software support which increases the processor time required for vectored interrupts. If priority interrupts are also necessary, more complex software is required and servicing interrupts uses more processor time. In microprocessors, where the instructions are usually more basic than in larger machines, many instructions may be required to perform priority or vectored interrupt servicing, or both. The invention described in this disclosure provides a system for priority vector interrupts requiring few servicing instructions and a minimal external logic circuitry.